Grundkurs SQL

6.3.1  UPDATE-Anweisung für mehrere Spalten/Tabellen

In der Realität werden jedoch oft nicht nur einzelne Spalten eines Tabelleneintrages geändert, sondern mehrere Spalteneinträge. Auch dies ist mit einer einfachen UPDATE-Anweisung möglich und wird in SQL so geschrieben:

UPDATE tabellenName
SET    Spalte_3 = Wert1, Spalte_4 = Wert2, ...
WHERE  Spalte_1 = Wert3

So kann bei einem Umzug neben der Straße auch die Postleitzahl mit einer Abfrage geändert werden.

In den UPDATE-Anweisungen können auch Zusatzinformationen aus anderen Tabellen genutzt werden. Dazu muss bei der Angabe der Tabelle ein JOIN mit einer zweiten Tabelle angegeben werden:

UPDATE tabelleName_1
       INNER JOIN tabelleName_2
       ON tabelleName_1.Spalte_3 = tabelleName_2.Spalte_1
SET    tabelleName_1.Spalte_2 = Wert1
WHERE  tabelleName_2.Spalte_4 = Wert2

Ein Beispiel in unserer Personalverwaltung könnte dann so aussehen. Wir möchten den Lohn aller Beamten um 10% erhöhen. Wir können uns erst einmal alle Beamten mit folgender Anweisung anzeigen lassen und später noch mal überprüfen:

SELECT beschreibung, name, bruttolohn
FROM   tbl_position
       INNER JOIN tbl_mitarbeiter
       ON tbl_position.position_ID = tbl_mitarbeiter.position
WHERE  tbl_position.beschreibung = 'Beamter'

Nun die Änderung des Bruttolohns der Beamten:

UPDATE tbl_position
       INNER JOIN tbl_mitarbeiter
       ON tbl_position.position_ID = tbl_mitarbeiter.position
SET    tbl_mitarbeiter.bruttolohn = tbl_mitarbeiter.bruttolohn*1.1
WHERE  tbl_position.beschreibung = 'Beamter'